﻿//<!--******************************************************************************************-->
//函數名稱：GSSOpenWindow
//目    的：點選「CTLTEXTBOXADV or CTLTEXTATREADV控制項」的篩選資料按鈕時執行的函數
//參數說明：vstrURL：鏈節路徑
//			vintOpenType：開啟視窗方式
//			vstrWinName：開啟視窗名稱
//			vstrWinFeatures：開啟視窗的Features外觀屬性
//			vblnWinReplace：開啟視窗鏈節至其他路徑時，是否記錄URL(IE的History功能)
//  PS：以上參數可以透過設定「篩選按鈕」物件的屬性而取得，說明如下（建議使用此方法）
//			GSS_URL：鏈節路徑
//			GSS_OPENTYPE：開啟視窗方式
//			GSS_WINNAME：開啟視窗名稱
//			GSS_WINFEATURES：開啟視窗的Features外觀屬性
//			GSS_WINREPLACE：開啟視窗鏈節至其他路徑時，是否記錄URL(IE的History功能)
//			GSS_FILTER：篩選條件字串，請參考<1>
//			GSS_DATAFLD：資料欄位代號清單，請參考<2>
//			GSS_EXATTR：請參考<5>
//	開啟的篩選資料視窗取值說明：（使用Request.QueryString方式接收傳入的參數）											
//	<1> strFilter：篩選條件字串											
//	有時需要的參數並非存在PAGE的HTML物件中，而是一般常數時，可以設定「>」按鈕的GSS_FILTER屬性，另開視窗顯示相關的字彙時，會將此參數值透過strFilter變數傳遞											
//	<2> strDataFld：資料欄位代號清單											
//	選取GRID上某一列資料或是CLICK「確認(S)」時，根據strDataFld欄位名稱取得表格內的資料，
//	如果為多個欄位時使用「,」作為欄位間的分隔符號，欄位資料間使用「\|」作為分隔字元，
//	並將目前選取的資料帶回輸入方塊											
//	<3> nameTextBox：輸入項目物件name屬性	
//	<4> strTextBoxVal：輸入項目物件value屬性							
//	<5> 根據「GSS_EXATTR」屬性值時，取得Form中欄位內的資料傳遞至「字彙查詢畫面」，
//		傳遞格式為：物件1name=物件1Value&物件2name=物件2Value…，
//		因此需取格物件1的VALUE時，可以透過Request.QueryString("物件1name")指令取值											
//版本變更：
//xx. YYYY/MM/DD	AUTHOR		COMMENTS
// 1. 2002/06/19	Brenda		New Create
//<!--******************************************************************************************-->
function GSSOpenWindow(vstrURL,vintOpenType,vstrWinName,vstrWinFeatures,vblnWinReplace){
	var vntReturn='';
	var objDocument=GSSGetDocument();
	var objBtn=event.srcElement;
	var objForm=GSSGetEditForm(objBtn);	
	var objContainer=GSSGetParentElementByTag(objBtn,'SPAN');
	var objTD=GSSGetParentElementByTag(objContainer,'TD');
	var objTR=GSSGetParentElementByTag(objContainer,'TR');
	
	var objLabCap=GSSgetCaptionObj(objBtn) ;
	var objTextBox=objContainer.children[0];
	
	if(objContainer.children[0].tagName!='INPUT'){
		var objTextBox=objContainer.children[0].getElementsByTagName('TEXTAREA')[0];
	}
	
	var nameTextBox=objTextBox.name;
	GSSsrcObj=objTextBox;
	GSSiniVal=objTextBox.value;
	
	if(typeof(objForm['GSStxtFunDeep'])=='object'){
		var intDeep=objForm['GSStxtFunDeep'].value;
		if(intDeep!=''){
			intDeep=parseInt(intDeep)+1;}
		else{
			intDeep=1;}         
	}

	var blnRtn=GSSgetFilterAtrr(objBtn,vstrURL,vintOpenType,vstrWinName,vstrWinFeatures,vblnWinReplace);
	if(!blnRtn) return false;

	if(GSS_URL.indexOf('?')==-1){
		strURL = GSS_URL + '?'}
	else{
		strURL = GSS_URL + '&';
	}
	
	if(intDeep){
		strURL = strURL + 'GSStxtFunDeep=' + intDeep + '&';
	}
	strURL = strURL + 'strFilter=' + escape(GSS_FILTER) + '&strDataFld=' + escape(GSS_DATAFLD);
	if(GSS_EXATTR!='') strURL +=GSS_EXATTR;
	
	strURL += '&nameTextBox=' + escape(nameTextBox);
	strURL += '&strTextBoxVal=' + escape(objTextBox.value);

	if(typeof(objLabCap)=='object'){
	    strURL += '&strFUN_NAME=' + objLabCap.innerText;}

	strURL += '&GSSStopRec=Y';		//避免關閉視窗後，連接至下一頁，再回上一頁，發生錯誤
	GSScreateInputElm(objDocument,objForm,'GSSnameSrcCodeID','HIDDEN','display:none;',objTextBox.name);
	GSScreateInputElm(objDocument,objForm,'GSSsrcIndexSrcCodeID','HIDDEN','display:none;',objTextBox.sourceIndex);

	if (GSS_OPENTYPE==1){
		GSSwinOpened=window.open(strURL,GSS_WINNAME,GSS_WINFEATURES,GSS_WINREPLACE);
		GSSwinOpened.focus();
		
	    //帶回值後如需執行SCRIPT可以撰寫Function名稱為:WordBoox輸入方塊名稱 + _onSetWordBookValue
		GSSstrScript=' if (typeof(%_onSetTextBoxValue)==\'function\') %_onSetTextBoxValue();';
		GSSstrScript = GSSstrScript.replace(/%/g,nameTextBox);

		document.body.attachEvent('onclick',GSSfocusWinOpened);
	}
	else{
		var	vntReturn=window.showModalDialog(strURL,GSS_WINNAME,GSS_WINFEATURES);
		if(typeof(vntReturn)=='string'){
			objTextBox.value=vntReturn;
		}
		return false;
	}
}